﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CC;
using Enum;

namespace RFMS
{
    public partial class Login : Form
    {
        private int cijfersIngedrukt;
        private List<List<string>> werknemers;
        private WerknemerBeheer werkenemerBeheer;

        public Login()
        {
            InitializeComponent();
            //FormBorderStyle = FormBorderStyle.None;
            //WindowState = FormWindowState.Maximized;
            //TopMost = true;
            textBox1.PasswordChar = '*';
            textBox1.MaxLength = 4;
            cijfersIngedrukt = 0;
            werkenemerBeheer = new WerknemerBeheer();
        }

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (char)13)
                buttonLogin_Click(null, null);
        }

        private void buttonLogin_Click(object sender, EventArgs e)
        {
            
            bool gevonden = false;
            if (textBox1.Text == @"9999")
            {
                reset();
                AdminScherm adminScherm = new AdminScherm();
                adminScherm.ShowDialog();
            }

            else
            {
                Hoofdscherm hoofd;
                UrenScherm urenScherm;
                UrenschermAdmin urenschermAdmin;
                werknemers = werkenemerBeheer.LijstVanWerknemers();

                foreach (List<string> s in werknemers)
                {
                    if (s[2] == textBox1.Text)
                    {
                        switch (s[3])
                        {
                            case "Serveerder":
                                if (!c_urenRegistratie.Checked)
                                {
                                    gevonden = true;
                                    reset();
                                    hoofd = new Hoofdscherm(s[1], "Serveerder");
                                    hoofd.ShowDialog();
                                }
                                else
                                {
                                    urenScherm = new UrenScherm(textBox1.Text);
                                    urenScherm.ShowDialog();
                                }
                                
                                break;
                            case "Financieel":
                                if (!c_urenRegistratie.Checked)
                                {
                                    gevonden = true;
                                    reset();
                                    hoofd = new Hoofdscherm(s[1], "Financieel");
                                    hoofd.ShowDialog();
                                }
                                else
                                {
                                    urenschermAdmin = new UrenschermAdmin();
                                    urenschermAdmin.ShowDialog();
                                }
                                
                                break;
                            case "Admin":
                                if (!c_urenRegistratie.Checked)
                                {
                                    gevonden = true;
                                    reset();
                                    hoofd = new Hoofdscherm(s[1], "Admin");
                                    hoofd.ShowDialog();
                                }
                                else
                                {
                                    urenschermAdmin = new UrenschermAdmin();
                                    urenschermAdmin.ShowDialog();
                                }
                                break;
                        }
                    }
                }
                if (!gevonden) 
                {
                    cijfersIngedrukt = 0;
                    textBox1.Clear();
                    labelWachtwoord.Enabled = true; 
                    
                }
            }            
        }

        private void reset()
        {
            cijfersIngedrukt = 0;
            textBox1.Clear();
            labelWachtwoord.Enabled = false;
        }

        private void cijferButton_Click(object sender, EventArgs e)
        {
            if (cijfersIngedrukt < 4)
            {
                textBox1.Text += (sender as Button).Text;
            }
            cijfersIngedrukt++;
        }

        private void buttonCorrigeer_Click(object sender, EventArgs e)
        {
            cijfersIngedrukt = 0;
            textBox1.Text = "";
            labelWachtwoord.Enabled = false;
        }

        private void Login_KeyDown(object sender, KeyEventArgs e)
        {
            if(e.KeyCode == Keys.Escape)
            {
                this.Close();
            }
        }
    }
}
